Chapter 2
Matlab
code 2.2: Matlab file “Figure 2-5.m”
%--------------------------------------------------------------------
% This code can be used to generate Figure 2.5
%--------------------------------------------------------------------
clear all;
close all;
%% the theoretical curve of the vibrating
target micro-Doppler characteristic
c = 3e8;
j = sqrt(-1);
fc = 10e9; % carrier frequency of transmitted
signal
cord = 1000*[3 4 5]; % coordinates of local
coordinate system's origin in the radar coordinate system
colo = [0 0 0]; % coordinates of radar in the
radar coordinate system
R0 = cord-colo;
alpha = 0.9273; % azimuth angle
% alpha = atan(cora(2)/cora(1));
beita = 0.7854; % elevation angle
% beita =
atan(cora(3)/(sqrt(cora(1)^2+cora(2)^2)));
alpha_p = pi/5; % azimuth angle of vibrating
axis
beita_p = pi/4; % elevation angle of vibrating
axis
v = 0; % translational velocity of target
dv = 0.01; % vibration amplitude
fv = 3; % vibration frequency
prf = 1000; % pulse repetition frequency
pri = 1/prf; % pulse repetition interval
t = 1; % radar illumimated time
dt = 0:pri:t-pri; % time sampling interval
temp =
cos(alpha-alpha_p)*cos(beita)*cos(beita_p)+sin(beita)*sin(beita_p);
fmd = (4*pi*fc*fv*dv/c)*temp*cos(2*pi*fv*dt); %
theoretical micro-Doppler frequency
figure(1)
plot(dt,fmd)
xlabel('Time (s)')
ylabel('Frequency (Hz)')
axis([0,1,-50,50])
%% the time-frequency analysis result of the
vibrating target micro-Doppler characteristic
r = zeros(length(colo),length(dt)); % distance
between the scatterers and radar
m = length(dt);
for i = 1:m
r(:,i) =
R0'+dv*sin(2*pi*fv*dt(i))*[cos(alpha_p)*cos(beita_p);sin(alpha_p)*cos(beita_p);sin(beita_p)];
end
rabs = sqrt(sum(r.^2,1));
s = exp(j*2*pi*fc*2*rabs'/c); % echo signal
matrix
N = 200; % number of Gabor coefficients in time
Q = 100; % degree of oversampling
tfr = tfrgabor(s.',N,Q); % Gabor transform
tfr_r = fftshift(tfr,1);
figure(2)
contour(linspace(min(dt),max(dt),length(tfr_r(1,:))),linspace(-prf/2,prf/2-1,length(tfr_r(:,1))),tfr_r,10)
xlabel('Time (s)')
ylabel('Frequency (Hz)')
axis([0,1,-50,50])